1. Field of the Invention
The invention relates generally to the field of digital data processing systems, and more specifically to systems for simulating the operation of analog or digital systems particularly by constructing and solving mathematical models of such systems.
2. Description of the Prior Art
For a number of years, computerized simulation systems have been developed to simulate the functioning of digital and analog systems, and specifically to process mathematical models of such systems onto digital computers. After a first design pass, a designer or engineer normally constructs a simulation program which embodies all of the features of the design, and runs the program on a digital computer to simulate the operation of devices constructed in accordance with the design. After obtaining the results of the simulation, the designer may then perform additional design work, and simulate the revised design. The designer may wait until he was satisfied with the result of the simulation before constructing a physical prototype of the system to verify the design, thereby saving time and expense.
Present simulation systems often require the system designer, who is generally an engineer or scientist and not a computer programmer, to come up with a custom program to use in this simulation. This generally either required the product designer himself to know considerable amount of programming, or it required the product designer to work hand in hand with a programmer to generate the simulation program. This essentially required the designer to know not only his own design specialty but also computer programming to enable him to either generate the program directly, or to be able to communicate with the programmer.
To reduce the amount of programming knowledge required by the system designer, a simulation system has been developed which use preprogrammed macro function blocks which are stored in the simulation computer and can be called up as required by the designer. Analog systems may be expressed mathematically by means of, for example, a number of differential equations which can be solved by means of differentiators, integrators, signal generators, adders and multipliers, and the simulation system includes separate macro routines for each one of these functions. All of these macro routines are separately available to the system designer. When he is preparing a simulation, all he need do is to request the function routines from the simulation computer. An executive program links the selected macro routines together in relation to the inputs to and outputs from the separate routines, and the result is a simulation program which will simulate the physical analog system in response to selected initial conditions and parameters.
Digital systems are simulated in a similar way as the aforementioned analog systems. Digital circuit elements such as logic gates, flip flops, delay lines and the like are expressed by means of macro routines stored in the simulation computer and separately called up by the system designer. The executive program can then link the routines first as the designer has interconnected the circuit elements in his logic design. The result is a program which simulates the operation of the logic circuit in response to selected input signals, initial conditions and any parameters.
In both the analog and digital simulation systems, since the macro routines have been previously written, and the system designer need only interconnect or link them as required by his preliminary design effort on his system, the designer need have little or no knowledge of computer programming. Virtually all of the programming has been provided by means of the previously defined macro routines stored in memory.
The aforementioned system has several drawbacks, however. It is difficult to ensure that all of the physical constraints have been written into the many macro routines that are required during a simulation. For example, to ensure that the resulting simulation is physically meaningful, it is necessary to ensure that all of the input values of all of the function blocks are provided, so when a macro routine is being processed, the resulting value actually is a correct result. If an input value is not provided, the simulation system may have a result that is erroneous. Furthermore, it is essential to ensure that there are no zero-delay loops which may result if, for example, the output value of a later calculation is used as an input value for an earlier-performed macro routine. It is also necessary to ensure that all initial conditions and parameters are supplied to ensure that the simulation incorporates all of the physically meaningful constraints to the greatest extent possible.